package pirate;

import java.io.PrintStream;
import java.util.Scanner;
import ui.UIHulpMethodes;

public class Pirate {
	static final int AANTAL_REGELS = 5;
	PrintStream out;

	Pirate(){
		UIHulpMethodes.vraagGebruikerOmInvoer();
		out = new PrintStream(System.out);

	}

	int leesInRange(Scanner input, int start, int eind){
		int resultaat = input.nextInt();
		if(resultaat < start || resultaat > eind){
			out.printf("Het getal %d ligt niet in de range %d - %d\n",resultaat,start,eind);
			System.exit(1);
		}
		return resultaat;
	}

	void printCoordinateRow(CoordinateRow input){
		for(int i = 0;i < input.huidigAantal;i++){
			out.printf("%d,%d\n", input.coordinaatRij[i].x,input.coordinaatRij[i].y);
		}
	}

	void voegRegelToe(CoordinateRow coordinaten,CoordinateRow oplossing,boolean vooraan){
		if(vooraan == true){
			oplossing.voegVooraanToe(coordinaten);
		} else if(vooraan == false){
			oplossing.voegCoordinateRowToe(coordinaten);
		} else {
			out.printf("fout!");
			System.exit(1);
		}
	}

	void leesCoordinaat(String input,CoordinateRow coordinaten){
		Scanner coordinaatScan = new Scanner(input);
		coordinaatScan.useDelimiter(",");
		int x = leesInRange(coordinaatScan,0,10);
		int y = leesInRange(coordinaatScan,0,10);
		Coordinate coordinaat = new Coordinate(x,y);
		coordinaat.verschuif(1, 0);
		coordinaten.voegToe(coordinaat);
	}

	void leesRegel(String input,CoordinateRow oplossing,boolean vooraan){
		Scanner inputScan = new Scanner(input);
		CoordinateRow coordinaten = new CoordinateRow();
		while(inputScan.hasNext()){
			leesCoordinaat(inputScan.next(),coordinaten);
		}
		voegRegelToe(coordinaten,oplossing,vooraan);
	}

	void leesBestand(CoordinateRow oplossing){
		Scanner in = new Scanner(System.in);
		in.useDelimiter("=");
		boolean vooraan = true;
		while(in.hasNext()){
			leesRegel(in.next(),oplossing,vooraan);
			vooraan=!vooraan;
		}
	}

	void start(){
		CoordinateRow oplossing = new CoordinateRow();
		leesBestand(oplossing);	
		printCoordinateRow(oplossing);
	}

	public static void main(String[] args) {
		new Pirate().start();
	}

}
